;*****************************************************
; 	Copyright (C) SEIKO EPSON CORP. 1997-2001
;	All rights Reserved
;
;	File name : memcmp.s
;	Function  :
;	       This is memcmp function
;	Revision  :
;		1997/03/24	V.Chan start
;		2001/12/06	T.Tazaki for GNU33(Linux)
;*****************************************************

;*****************************************************
; memcmp
;		compare N bytes of src and dest
;		return	:	result > 0 if src1 > src2
;					result < 0 if src1 < src2
;					result = 0 if src1 = src2
;
; arguments : %r6:dest addr, %r7:src addr, %r8:byte number
; return    : %r4:dest addr
;*****************************************************

	.section .text
	.align 1
	.global memcmp
	.type	 memcmp,@function

memcmp:
	ld.w	%r4, 0			; initialize result

memcmp_loop:
	cmp		%r8, 0
	jreq	memcmp_ret
	ld.ub	%r10, [%r6]+		; load byte
	ld.ub	%r11, [%r7]+		; load byte
	sub		%r10, %r11		; cmp bytes
	jreq.d	memcmp_loop
	sub		%r8, 1			; decrement count

	ld.w	%r4, %r10

memcmp_ret:
	ret

